#ifndef EVENTHANDLER_H
#define EVENTHANDLER_H

#include "export.h"
#include "MetaStorageBase.h"
#include <list>
#include "EventScheme.h"
#include "MQOBJECT.H"

class INFOBUS_API EventHandler : public MetaStorageBase
{
public:
  EventHandler();
  ~EventHandler();

  virtual void saveObject(MessageQueueObject * obj);
  virtual std::list<MessageQueueObject*>& search(const char* pszExec, const char* pszClassName, const char* pszMethodName, std::list<MessageQueueObject*>& list);

  long SequenceCount(EventScheme * pEventSch);
  void SearchEventMetaData(const char* matchExec, const char* matchClass, const char* matchMethod, EventScheme ** ppEvent);
  void SetEventSchemeStatus(E_STATUS status, EventScheme * pEventSch);
  void SetEventSchemeRefMsgID(long lRefMsg, EventScheme * pEventSch);
  void SelectTracesByEventId(long lRefMSgID, char ** ppXmlTraces);
  void SelectFullPattern(EventScheme ** ppEventSch);
  void SelectFullTrace(EventScheme ** ppEventSch);
  void StoreEventScheme(EventScheme * pEvent);
  void SelectTraceLine(const char* xml, EventScheme ** ppEventSch);
  void EventToEventScheme(const char* eventXml, EventScheme ** ppEventSch);
  void SelectEventTraceLine(const char* eventXml, EventScheme ** ppEventSch);
};



#endif
